// 路径：项目根目录/0925/Demo.cs
namespace _0925
{
    public static class Demo
    {
      
        public static void TestPrint1()
        {
            Console.WriteLine("===== 0925 作业1：闰年判断 =====");
            Console.WriteLine("📅 闰年规则：能被4整除但不能被100整除，或能被400整除\n");

            // 1. 输入年份（强化容错：空值、非数字、负数均拦截）
            int year = 0;
            while (true)
            {
                Console.Write("请输入要判断的年份（如：2024）：");
                string input = Console.ReadLine()?.Trim() ?? "";

                // 空值判断
                if (string.IsNullOrEmpty(input))
                {
                    Console.WriteLine("❌ 年份不能为空，请重新输入！\n");
                    continue;
                }

                // 数字转换+正数判断
                if (int.TryParse(input, out year) && year > 0)
                {
                    break; // 输入有效，跳出循环
                }
                else
                {
                    Console.WriteLine("❌ 输入无效！请输入正整数年份（如：2000）\n");
                }
            }

            // 2. 闰年核心判断（逻辑简化，可读性更强）
            bool isLeap = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);

            // 3. 输出结果（增加视觉区分）
            Console.WriteLine($"\n✅ 结果：{year}年{(isLeap ? "是" : "不是")}闰年");
            if (isLeap)
            {
                Console.WriteLine($"💡 原因：{year}能被400整除，或能被4整除且不能被100整除");
            }
            else
            {
                Console.WriteLine($"💡 原因：{year}不满足闰年的判定规则");
            }
        }


        public static void TestPrint2()
        {
            Console.WriteLine("\n===== 0925 作业2：旅游价格计算 =====");
            Console.WriteLine("💰 计费规则：");
            Console.WriteLine("  - 成人票：300元/人");
            Console.WriteLine("  - 儿童票：150元/人（1.2米以下）");
            Console.WriteLine("  - 团购优惠：总人数≥10人，整单9折\n");

            // 1. 输入成人数量
            int adultNum = 0;
            while (true)
            {
                Console.Write("请输入成人数量：");
                string input = Console.ReadLine()?.Trim() ?? "";
                if (int.TryParse(input, out adultNum) && adultNum >= 0)
                {
                    break;
                }
                Console.WriteLine("❌ 输入无效！请输入非负整数（如：5）\n");
            }

            // 2. 输入儿童数量
            int childNum = 0;
            while (true)
            {
                Console.Write("请输入儿童数量：");
                string input = Console.ReadLine()?.Trim() ?? "";
                if (int.TryParse(input, out childNum) && childNum >= 0)
                {
                    break;
                }
                Console.WriteLine("❌ 输入无效！请输入非负整数（如：3）\n");
            }

            // 3. 计算核心逻辑（分步拆解，清晰易懂）
            const int ADULT_PRICE = 300;   // 成人单价（常量，不可修改）
            const int CHILD_PRICE = 150;   // 儿童单价（常量）
            int totalPeople = adultNum + childNum;  // 总人数
            double originalTotal = adultNum * ADULT_PRICE + childNum * CHILD_PRICE;  // 原价
            double finalTotal = originalTotal;  // 最终价（默认原价）
            string discountTip = "无优惠";     // 优惠说明

            // 团购折扣判断
            if (totalPeople >= 10)
            {
                finalTotal = originalTotal * 0.9;
                discountTip = "团购9折（总人数≥10人）";
            }

            // 4. 输出明细（分步骤展示，一目了然）
            Console.WriteLine("\n📊 费用明细：");
            Console.WriteLine($"  - 成人：{adultNum}人 × {ADULT_PRICE}元 = {adultNum * ADULT_PRICE}元");
            Console.WriteLine($"  - 儿童：{childNum}人 × {CHILD_PRICE}元 = {childNum * CHILD_PRICE}元");
            Console.WriteLine($"  - 原价总计：{originalTotal:F2}元");
            Console.WriteLine($"  - 优惠方式：{discountTip}");
            Console.WriteLine($"  - 最终应付：{finalTotal:F2}元");
        }
    }
}